Variables Categóricas

Categóricas nominales:

Los valores distintivos no implican un orden especifico. Representan un identificador o símbolo único dentro de un sistema de identificaciones o símbolos o tipos. No existe ningún referente cuantitativo. Sirve para nombrar las unidades de análisis en una investigación. Ejemplo: Marca de auto, religión, sexo, género, etc.

Categóricas ordinales:

Parecidas a las nominales, pero tienen una relación de jerarquía entre las categorías, por ejemplo: Estratos Socioeconómicos, Niveles Educativos, Rangos militares, Ranking Deportivo, etc

Tablas de Contingencia

En estadística las tablas de contingencia o tablas de doble entrada, se emplean para registrar y analizar la asociación entre dos o más individuos, habitualmente de naturaleza cualitativa (nominales u ordinales).

Por ejemplo:

Suponiendo que se tienen dos variables, la primera el género y la segunda obesos. Se ha observado esta pareja de variables en una muestra aleatoria de 408 individuos. Se puede emplear una tabla de contingencia para expresar la relación entre estas dos variables:

Obesidad
Género Obesos No Obesos Totales
Hombres 227 79 306
Mujeres 23 79 102
Totales 250 158 408



En relación a los datos, ¿qué hipótesis podemos plantear?, ¿cómo lo validamos?

Tipos de Hipótesis Nula para tablas de contingencia

Independencia: Las categorías de dos variables son independientes entre si, es decir, no hay asociación.

Concepto de independencia estadística: si dos eventos son independientes, entonces la ocurrencia conjunta de ambos eventos se da por el producto de sus probabilidades por separado.

Entonces su rechazo indica asociación entre dos variables.

Homogeneidad: Las proporciones de I filas son similares con respecto a las J columnas

Ejemplo asumiendo la Independencia, para tablas 2x2:

¿Está la obesidad influenciada por el género?, es decir:

Ho: El género no influye en la obesidad (independencia)

H1: El género si influye en la obesidad (asociación)

Totales marginales

Porcentaje por columnas

Obesidad
Género Obesos No Obesos Totales
Hombres 91% 50% 75%
Mujeres 9% 50% 25%
Totales 100% 100% 100%

Porcentaje por filas

Obesidad
Género Obesos No Obesos Totales
Hombres 74% 26% 100%
Mujeres 23% 77% 100%
Totales 61% 39% 100%

¿Cuál de los dos porcentajes ayuda a resolver la pregunta?

Para probar la Hipótesis usamos el estadístico Ji-Cuadrado o Chi-Cuadrado

El estadístico Ji-Cuadrado

Permite juzgar si existe o no, una diferencia significativa entre los valores observados de una categoría con el correspondiente número esperado de casos, basándose en la hipótesis nula.

Una de las aplicaciones fundamentales es el contraste de Bondad de Ajuste, que consiste en saber si una muestra procede de una población teórica con determinada distribución de probabilidad.

Formula de \(\chi^2\) (Ji-cuadrado): \(\chi^2= \sum_{i=1}^{k}\frac{(o_{i}-e_{i})^2}{e_{i}}\)

Fómula de valores esperados/teóricos: \(Esperados = \frac{n_{.j}n_{i.}}{n_{..}}\)

J
i 1 2 Total
1 \(n_{11}\) \(n_{12}\) \(n_{1.}\)
2 \(n_{21}\) \(n_{22}\) \(n_{2.}\)
Total \(n_{.1}\) \(n_{.2}\) \(n_{..}\)

El estadístico Ji-Cuadrado

Calculo de valores esperados

Obesidad
Género Obesos No Obesos Total
Hombres \(\frac{250*306}{408}=187.5\) \(\frac{158*306}{408}=118.5\) \(306\)
Mujeres \(\frac{250*102}{408}=62.5\) \(\frac{158*102}{408}=39.5\) \(102\)
Total \(250\) \(158\) \(408\)
Calculo de Ji-cuadrado
Obesidad
Género Obesos No Obesos Total
Hombres \(\frac{(227-187.5)^2}{187.5}=8.32\) \(\frac{(79-118.5)^2}{118.5}=13.17\) \(21.49\)
Mujeres \(\frac{(23-62.5)^2}{62.5}=24.96\) \(\frac{(79-39.5)^2}{39.5}=39.50\) \(64.46\)
Total \(33.28\) \(52.67\) \(85.95\)

El valor \(\chi^2\) calculado es: 85.95

Interpretación del valor Ji-cuadrado

El valor calculado se compara con la distribución teórica de chi-cuadrado con k grados de libertad (g.l.)

Grados de libertad: es el número de valores que tienen libertad para variar después que se han impuesto ciertas restricciones a los datos

Explicación del concepto Grados de libertad

  • Suponga que queremos conocer la media de una población con una muestra de 10 valores.
  • La restrición es justamente la media, porque hay una relación que se debe mantener: la suma de todos los valores de los datos debe ser igual a n x media, donde n es el número de valores en el conjunto de datos.
  • En este ejemplo, la suma de los 10 valores debe ser igual a la media x 10.
  • Si la media de los 10 valores es 3.5, esta restricción requiere que la suma de los 10 valores debe ser igual a 10 x 3.5 = 35.
  • Con esa restricción, el primer valor puede varíar libremente, siempre que la suma de los 10 números tenga un valor de 35.
  • El segundo valor también varía libremente, debido a que independientemente del valor que escoja, aun permite la posibilidad de que la suma de todos los valores sea 35.
  • De hecho, los primeros 9 valores pueden ser cualquier número.
  • Pero para que los 10 valores sumen 35 y tengan una media de 3.5, el 10mo valor no puede variar. Debe ser un número específico
  • Por lo tanto, la muestra tiene 10 - 1 = 9 grados de libertad, es decir, hay n - 1 grados de libertad, donde n es el tamaño de la muestra.

Interpretación del valor Ji-cuadrado

En el caso de una tabla de una contingencia

los grados de libertad son el número de celdas de la tabla de dos variables categóricas que pueden variar, dadas las restricciones de los totales marginales de las filas y columnas. Entonces cada “observación” en este caso es la frecuencia en una celda.

- En el caso de una tabla 2 x 2, con dos categorías y dos niveles por cada categoría.

Variable A
Variable B Categoría 1 Categoría 2 Total
Categoría 1 ? 6
Categoría 2 15
Total 10 11 21
  • No importa que valores se utilizan para los totales marginales de las filas y las columnas.
  • Una vez que se hayan establecido estos valores, solo hay un valor de celda que puede cambiar.
  • Una vez que ingrese un número para una celda, los números de las otras celdas son predeterminados por los totales de las filas y las columnas.
  • No pueden variar libremente. De manera que la prueba de independencia chi-cuadrada tiene solo 1 grado de libertad para una tabla 2x2.
  • En general, para cualquier tabla de contingencia, los g.l. se calculan de esta forma: g.l. = (F-1)*(C-1)

Interpretación del valor Ji-cuadrado

Por tanto existe un valor \(\chi^2\) para cada grado de libertad

Así mismo, la distribución chi-cuadrado tiene asimetría positiva. A medida que aumentan los grados de libertad, se aproxima a la curva normal.

Tabla de valores Ji-cuadrado

Regla de decisión

Si el \(\chi^2\) calculado es mayor que el \(\chi^2\) teórico a unos g.l y nivel de confianza determinado, se rechaza la Ho.

Por el contrario, si el \(\chi^2\) calculado es menor que el \(\chi^2\) teórico a unos g.l y nivel de confianza determinado, se acepta la Ho.

Ejemplo de decisión

Siguiendo con nuestro ejemplo de obesidad vs género.

El valor \(\chi^2\) calculado es: 85.95 y lo vamos a comparar con el \(\chi^2\) teórico a 1 g.l.( 2-1 * 2-1)

Revisando el valor teórico en la tabla:

Por lo tanto, el \(\chi^2\) teórico 1 g.l. = 3.84

La decisión, ¿se acepta o rechaza la Ho?

Observamos que el valor calculado es superior al de la distribución teórica, por tanto, como el \(\chi_{c}^2= 85.95\) > \(\chi_{95\%}^2(1gl)= 3.84\), se rechaza la Ho, o en terminos estadísticos, no existe evidencia para aceptar la Ho

Ajustes de una prueba \(\chi^2\)

La prueba o corrección de Yates

  • Es una alternativa para ajustar los resultados del chi-cuadrado en tablas de contingencia de 2x2
  • Si las muestras son grandes la diferencia con el chi-cuadrado sin corrección va a ser mínima, pero en muestras pequeñas (<30), estas diferencias pueden ser importantes Lo que hace la prueba es hacerle una leve corrección al chi-cuadrado restando 0.5 a la diferencia entre observados y esperados
Obesidad
Género Obesos No Obesos Total
Hombres \(\frac{(|227-187.5|-0.5)^2}{187.5}=8.11\) \(\frac{(|79-118.5|-0.5)^2}{118.5}=12.83\) \(20.94\)
Mujeres \(\frac{(|23-62.5|-0.5)^2}{62.5}=24.33\) \(\frac{(|79-39.5|-0.5)^2}{39.5}=38.50\) \(62.84\)
Total \(32.44\) \(51.34\) \(83.78\)

Ajustes de una prueba \(\chi^2\)

El test exacto de Fisher

  • Se aplica cuando exiten celdas con valores menores a 5.
  • Calcula la probabilidad de obtener los resultados observados de forma directa, generando todos los posibles escenarios y calculando la proporción en los que se cumple la condición estudiada (son test de permutaciones)
  • La prueba de Fisher otorga directamente una probabilidad que puede ser comparada con α, sin uso de grados de libertad ni necesidad de examinar una tabla de distribuciones.

Ajustes de una prueba \(\chi^2\)

El test exacto de Fisher

Obesidad
Género Obesos No Obesos Totales
Hombres 227 79 306
Mujeres 23 79 102
Totales 250 158 408

\[p = \frac{306!*102!*205!*158!}{408!*227!*79!*23!*79!}=0.00001\]

Ajustes de una prueba \(\chi^2\)

Tanto la corrección de Yates como el test exacto de Fisher, son pruebas conservadoras y por tanto tienden a producir errores tipo II (no encontrar una diferencia significativa cuando en realidad sí la hay).

Cualquiera de las dos debe ser elegida en vez del chi-cuadrado cuando se tengan tablas de 2x2 o muestras muy pequeñas y/o cuando hay razones para querer ser conservador en cuanto a la posibilidad de cometer errores tipo I

Si cometer el error tipo II se considera especialmente importante en el contexto de la investigación, es mejor usar la prueba de Fisher

Medidas de Asociación para tablas de contingencia

Indican la fuerza o intensidad de una relación, siendo posible que una relación sea débil aun teniendo significancia estadística. En general, la asociación está comprendida entre los valores 0 y 1. Donde 0 indica la ausencia de asociación y 1 es la asociación perfecta.

Coeficiente PHI

Sólo se usa en tablas 2x2. Mide el nivel de asociación entre 2 variables dicotómicas. Se obtiene de la siguiente manera:

\(\phi=\sqrt{\frac{\chi^2}{n}}\) –> \(\phi=\sqrt{\frac{85.952}{408}}=0.459\)

Coeficiente V de Cramér y Contingencia de Pearson:

Es una medida de asociación para tablas de contingencia donde una de sus variables posee más de dos categorías.

  • COEFICIENTE V DE CRAMER (V)–> \(V = \sqrt{\frac{\chi^2}{n*min(i-1,j-1)}}\)

  • COEFICIENTE DE CONTINGENCIA DE PEARSON (C)–> \(C = \sqrt{\frac{\chi^2}{\chi^2+n}}\)

Coeficientes de asociación asimétricos

Definen la intensidad de la asociación considerando la cantidad de errores que cometeríamos al utilizar los casos de una variable para predecir los casos de la otra.

Coeficiente de incertidumbre y el lambda y el Tau de Goodman y Kruskal

A diferencia de otros coeficientes de asociación, el coeficiente de incertidumbre y el lambda pueden ser asimétricos, esto es, permiten estimar qué variable es mejor predictora de la otra.

  • Por lo anterior, es necesario definir cuál es la variable dependiente y cuál la independiente.
  • Los coeficientes asimétricos sirven para contrastar hipótesis de asociación en las cuales se define una variable independiente y otra dependiente.
  • Se debe considerar, sin embargo, que estos tests no permiten definir cuál de las variables es la dependiente y cuál la independiente
  • Lo que permiten los tests de asociaciones asimétricas es evaluar una asociación direccional, pero no permite dirimir entre cuál es la variable dependiente y cuál es la independiente
  • Por lo tanto, los tests de asociaciones asimétricas son convenientes de utilizar cuando la relación causal es clara de antemano. Si no lo es, es mejor usar un test de asociación simétrica.

Lambda de Goodman y Kruskal

Llamado tambien Coeficiente de predictibilidad de Guttman. Es una medida de asociación que refleja la reducción proporcional en el error cuando se utilizan los valores de la variable independiente para pronosticar los valores de la variable dependiente.

Un valor igual a 1 significa que la variable independiente pronostica perfectamente la variable dependiente. Un valor igual a 0 significa que la variable independiente no ayuda a pronosticar la variable dependiente

\[\lambda=\frac{\sum f_{i}-Fd}{N-Fd}\] Donde:

  • fi, es la suma de las frecuencias máximas de la variable independiente
  • Fd, frecuencia máxima de los totales de la variable dependiente (columna o fila).
  • N, número total de casos

Lambda de Goodman y Kruskal

Considerando a la variable Sexo (filas) como independiente:

El valor fi corresponde a la suma de las mayores frecuencias en la categorías de la variable independiente (227+79)

Por su parte Fd, corresponde la frecuencia máxima entre las categorías de la variable dependiente, en este caso 250 y N es igual al total de tabla, en este caso 408.

\[\lambda=\frac{(227+79)-250}{(408-250)}=0.3544\]

…A PARCTICAR!!

PRACTICA

Usaremos una muestra aleatoria de tamaño 200 de la Encuesta nacional de Consumo Alimentario del 2014 disponibles en el Ministerio de Salud https://www.minsal.cl/encabasededatos/ La base se llama base_enca2014_200.xlsx y se encuentra dispobible en material docente de la plataforma U-Cursos.

Nombre de las variables y códigos de las categorías

  • nse: Nivel Socio Económico
    1. Alto
    2. Medio alto
    3. Medio
    4. Medio Bajo
    5. Bajo
  • sex: Género
    1. Hombre / 2. Mujer
  • macrozona: Macrozona de la región
    1. Norte
    2. Centro Norte
    3. Centro Sur
    4. Sur
    5. RM
  • area: Área de residencia
    1. Urbano / 2. Rural
  • ageyrs: Edad en años cumplidos
  • wgt: Peso en Kilogramos
  • ht: Estatura en metros
  • energia_kc: Calorías consumidas en Kcals
  • prot_g_dia: Proteínas consumidas en gr/día
  • cho_g_dia: Hidratos de carbono consumidos en gr/día
  • lip_g_dia: Lípidos consumidos en gr/día
  • g_sat_g_di: Grasas saturadas consumidas en mg/día
  • g_mono_g_d: Grasas monoinsaturadas consumidas en mg/día
  • g_poli_g_d: Grasas poliinsaturadas consumidas en mg/día
  • colest_mg: Colesterol consumido en mg/día
  • ChoEnerPor: % de Energía proveniente de carbohidratos
  • LipEnerPor: % de Energía proveniente de lípidos
  • ProEnerPor: % de Energía proveniente de proteínas

PRACTICA

Llamamos la librería readxl y cargamos nuestro excel

library(readxl)
datos <- read_excel("data/base_enca2014_200.xlsx")  #Cargamos la base

Agregamos las etiquetas a los códigos de las variables categóricas

datos$nse <- factor(datos$nse, labels = c("Alto", "Medio_alto", "Medio", "Medio_Bajo", "Bajo"))
datos$sex <- factor(datos$sex, labels = c("Hombre","Mujer"))
datos$macrozona <- factor(datos$macrozona, labels = c("Norte","Centro Norte","Centro Sur","Sur","RM"))
datos$area <- factor(datos$area, labels = c("Urbano","Rural"))

Hacemos una primera tabla de 2x2

tabla1 <- table(datos$sex, datos$area)
tabla1
        
         Urbano Rural
  Hombre     57     8
  Mujer     120    15

Le podemos agregar los totales a la tabla con la función addmargins()

addmargins(tabla1) 
        
         Urbano Rural Sum
  Hombre     57     8  65
  Mujer     120    15 135
  Sum       177    23 200

PRACTICA

Calculamos el Chi2

chisq.test(tabla1, correct=FALSE)  #Quitamos la corrección de Yates porque tenemos un "n" grande
    Pearson's Chi-squared test

data:  tabla1
X-squared = 0.061725, df = 1, p-value = 0.8038

El Chi2 no permite rechazar la Ho de independencia, por tanto las variables son independientes.

Probamos el test exacto de Fisher

fisher.test(tabla1)
    Fisher's Exact Test for Count Data

data:  tabla1
p-value = 0.8156
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.331541 2.574534
sample estimates:
odds ratio 
 0.8911535 

El test de Fisher nos ratifica lo obtenido en el Chi2

PRACTICA

Cargamos la librería DescTools para Usar el Phi, V de Cramer y Lambda

library(DescTools)

Probamos el coeficiente Phi

Phi(tabla1)   #La asociación es casi inexistente
[1] 0.01756771

Calculamos el coeficiente de asociación asimétrico de lambda de Goodman-Kruskal

Lambda(tabla1, direction = "row")     #Definimos al Sexo como Independiente
[1] 0
Lambda(tabla1, direction = "column")  #Definimos al area como Independiente
[1] 0

Por tanto no hay relación de dependencia debido a que el Chi2 no permite rechazar la Ho de independencia

PRACTICA

Vamos a realizar otras tablas

Cruzaremos el NSE con la Macrozona

addmargins(table(datos$nse, datos$macrozona) )
            
             Norte Centro Norte Centro Sur Sur  RM Sum
  Alto           2            3          4   3   5  17
  Medio_alto     4           13          6   2  13  38
  Medio          3           11          4   5  19  42
  Medio_Bajo     7           17          5  19  27  75
  Bajo           6            5          3   5   9  28
  Sum           22           49         22  34  73 200

Calculamos los test

chisq.test(table(datos$nse, datos$macrozona))  #Nos advierte que el valor chi2 puede ser incorrecto
Warning in chisq.test(table(datos$nse, datos$macrozona)): Chi-squared
approximation may be incorrect
    Pearson's Chi-squared test

data:  table(datos$nse, datos$macrozona)
X-squared = 18.69, df = 16, p-value = 0.2851

PRACTICA

Calculamos el Coeficiente V de Cramer y Coeficiente de Contingencia de Pearson

CramerV(table(datos$nse, datos$macrozona))   #Coeficiente V de Cramer 
[1] 0.1528474
ContCoef(table(datos$nse, datos$macrozona))  #Coeficiente de Contingencia de Pearson
[1] 0.2923403

Vamos a unir centro-norte y centro-sur en macrozona. Para eso vamos a crear una nueva variable llamada macrozona2

datos$macrozona2 <- ifelse(datos$macrozona == "Centro Norte" | 
                             datos$macrozona == "Centro Sur", "Centro", 
                           datos$macrozona)
datos$macrozona2 <- factor(datos$macrozona2, 
                           labels=c("Norte", "Sur", "RM", "Centro"))   #Agregamos las etiquetas
table(datos$macrozona2)  #Verificamos
 Norte    Sur     RM Centro 
    22     34     73     71 

Ahora unimos “Alto” con “Medio_alto” y “Medio_Bajo” con “Bajo” en nse en una nueva variable llamada nse2

datos$nse2 <- datos$nse  #Hacemos una copia de nse en nse2 para recodificar directamente
datos$nse2[datos$nse2 == "Medio_alto"] <- "Alto"
datos$nse2[datos$nse2 == "Medio_Bajo"] <- "Bajo"
datos$nse2 <- factor(datos$nse2) #factorizamos las etiquetas

PRACTICA

Verificamos los cambios en la nueva variable nse2

table(datos$nse2)  #Verificamos
 Alto Medio  Bajo 
   55    42   103 

Ahora realizamos la nueva tabla

addmargins(table(datos$nse2, datos$macrozona2))
       
        Norte Sur  RM Centro Sum
  Alto      6   5  18     26  55
  Medio     3   5  19     15  42
  Bajo     13  24  36     30 103
  Sum      22  34  73     71 200

Calculamos los test

chisq.test(table(datos$nse2, datos$macrozona2))
Warning in chisq.test(table(datos$nse2, datos$macrozona2)): Chi-squared
approximation may be incorrect
    Pearson's Chi-squared test

data:  table(datos$nse2, datos$macrozona2)
X-squared = 10.373, df = 6, p-value = 0.1098

PRACTICA

Revisamos las asociaciones

CramerV(table(datos$nse2, datos$macrozona2))
[1] 0.1610324
ContCoef(table(datos$nse2, datos$macrozona2))
[1] 0.2220489
Lambda(table(datos$nse2, datos$macrozona2), direction = "column")  #Tomado a la macrozona como independiente
[1] 0.06299213

Insertar una tabla de contingencia manual

Creamos los datos en un data frame

tabla2 <- data.frame(genero=c("mas", "mas", "fem", "fem"),
                     obesidad = c("obeso","no obeso", "obeso","no obeso"),
                     frec =c(227,79,23,79))
tabla3 <- xtabs(frec~genero+obesidad, data=tabla2)   #Aquí ponderamos las categorías por la frecuencias
addmargins(tabla3)
      obesidad
genero no obeso obeso Sum
   fem       79    23 102
   mas       79   227 306
   Sum      158   250 408

PRACTICA

Ahora podemos calcular los test

chisq.test(tabla3, correct=FALSE)
    Pearson's Chi-squared test

data:  tabla3
X-squared = 85.952, df = 1, p-value < 2.2e-16
fisher.test(tabla3)
    Fisher's Exact Test for Count Data

data:  tabla3
p-value < 2.2e-16
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  5.655224 17.529423
sample estimates:
odds ratio 
  9.800476 
Phi(tabla3)
[1] 0.4589844
Lambda(tabla3, direction = "column")   
[1] 0.3544304